Top 10k strings from Supercode (1984)(CP Software).tzx
in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [TZX] (TOSEC-v2007-01-01) /
Back to the directory listing
7 ;"Routine in ROM"; 3 THIS ROUTINE IS NON-RELOCATABLE 3 FFFFFFFFFFFFFFFFFF 2 \##N#F#"]\" 2 [}\r#s#N#F# 2 R"E\*S\###" 2 Press ENTER to Expand the Whole Program 2 No. STATEMENTS : 2 No. LINES : 2 No. Bytes: 2 Length of Program Only:! 2 LINE NO:NOW RENUMBER PROGRAM 2 GGGGGGGGGGGGGGGGGGGG 2 First Byte: 2 FROM LINE NO:TO LINE NO:AFTER LINE NO:NOW RENUMBER PROGRAM 2 FFFFFFFFFFFF 2 ENLARGE REM 2 EEEEEEEEEE 2 BLOCK COPY 2 Auto-start Line No: 2 Array Name: 2 A,B,C$,DUR: 2 +-*]\"[\*Q\ 2 ++F+N+++"]\*S\~ 2 ++F+N+++"]\ 2 *]\###q#p##"]\ 2 *S\##"]\^#V 2 #T]##N#F#~ 2 " If you choose 2 1 existing line no:,the next valid line no: is used.Cal -culated GOTOs etc are highlit.": 1 at any position on the screen: ie, to find the CODE of the character printed 1 __________"; 1 ZX SPECTRUM MACHINE CODE TOOLKIT 1 This is Line #";Z 1 The Recording was fine! 1 TO SEE HOW THIS WAS DONE, EXIT & EXAMINE LINES 9278 TO 9286 1 Start address: 1 SUPERSOFT SYSTEMS 1 SUPERSOFT SYSTEMS 1 SUPERCODE2 1 SUPERCODE1 1 SUPERCODE TOOLKIT 1 SAVE'";C$( 1 S-CODE 16K 1 S U P E R C O D E 1 Routine Starts at ";A 1 Routine Length is ";B;" bytes 1 Routine Ends at ";A+B-1 1 ROUTINE NO: 1 ROUTINE ";C$'" IS NOW CALLED 1 RANDOMIZE USR63950 1 RANDOMIZE USR 3190 1 RANDOMIZE USR ";A 1 Please wait-only 50 seconds left 1 PRINT;: RANDOMISE USR 60222 1 POKE NUMBERS 1 No. OF EXTRA BYTES::}\_:~\W: 1 No. OF EXTRA BYTES: 1 L);"'CODE ";A;",";B 1 INDEX - PAGE ";(Z-1 1 HIRES SCROLL-UP 1 GGGGGGGGGGGGGGGGGGGGGGGG 1 Freddy A Vachha & Vic B Rumsey 1 Freddy A Vachha Vic B Rumsey 1 FFFFFFFFFFF 1 ERROR CODE: ";N$: 1 Created with Ramsoft MakeTZX 1 CP Software Presents 1 C/D/E/I/N/P/Q/R/S/X 1 ANY OTHER KEY TO START 1 ANY OTHER KEY TO RESTART 1 ANY OTHER KEY TO GO ON 1 ANY OTHER KEY 1 ;C$;" CODE ";A;",";B: 1 ;"top left hand corner of the box" 1 ;"__________ 1 ;"You can scroll attributes too by using this routine & then No: 37 - 40, after defining an appropriate box & setting the Attr Value to 63." 1 ;"WRAP-AROUND POKE ";A+16 1 ;"WRAP-AROUND POKE "; 1 ;"WRAP AROUND POKE ";A+13 1 ;"To say the 2 byte equivalent of X is L(Less)/M(More) sig: bytes means that 256 * M + L = X . This routine permits instant conversion of a number from 0 - 65535 to its 2-byte equivalent. To convert X into its 2-byte equivalent, enter RANDOMISE X. 1 ;"To save this routine, use"; 1 ;"To renumber lines starting with S using an interval I, first POKE 59580,I: POKE 59582,S-256* INT(S/256):POKE59583,INT(S/256) All GOTOs,GOSUBs,LISTs,LLISTs, RESTOREs,SAVE...LINEs & #Ns are renumbered(except for decimal/ calculated arguments & REMs).If the arg 1 ;"To help with PRINTing/PLOTting, this routine prints a BRIGHT ON /OFF checkerboard on the screen" 1 ;"To delete all lines from a to b POKE 23728, a - 256*INT(a/256) POKE 23729, INT(a/256) RANDOMISE b": 1 ;"To call this routine, use"; 1 ;"This routine will switch all flashing squares to steady & vice versa. This is hence very different from routines 32/33." 1 ;"This routine will switch all bright squares to normal & vice versa. This is hence very different from routines 34/35." 1 ;"This routine waits till a key (whose CODE will be put in L)is pressed.": 1 ;"This routine undoes the effect of #98, to allow lines of a CONFUSEd program to be EDITed/ altered.": 1 ;"This routine swops all chara- cters of a given CODE with all characters of a 2nd given CODE. POKE 63903, Old CODE POKE 63905, New CODE" 1 ;"This routine simulates a power- off: ie, it not only does NEW but also CLEARs RAMTOP to its original value, clears the entire memory & resets UDGs & System VARs.": 1 ;"This routine shortens & speeds up your program by deleting all REM statements in it. Also see #41,#82,#90 & #100.": 1 ;"This routine replays what #77 recorded. It is probably best to use your cassette-recorder (MIC socket) to amplify the sound.": 1 ;"This routine replaces numbers in the program by VAL String, which saves space but reduces speed. 0 is replaced by NOT PI. Also see #41,#64,#82,#90": 1 ;"This routine prints the address of the first character in the line the cursor points to.": 1 ;"This routine prints out both the no: of lines & statements in the program. If you try this out, use GOTO 9001 to restart." 1 ;"This routine prints out a full analysis of memory contents, starting at the address whose less & more significant bytes (see #61) have been POKEd into 62866 & 62867 respectively. The 4 columns are address, contents in decimal & hex & CHR$ (where printable).": 1 ;"This routine places a random # pair in the System Variable SEED ( PEEK 23670 & 23671 )." ; 1 ;"This routine lists all (1) Numeric variables (2) String variables (3) Numeric Arrays (4) String Arrays (5) FOR..NEXT control variables" 1 ;"This routine inserts a given number into a block of memory. POKE 63796, No: of bytes POKE 63798 (less sig) & 63799 (more sig), Start Address POKE 63801, No: to be inserted" 1 ;"This routine expands programs so that there is exactly one statement per line (except in IF..THEN lines).In reply to the prompt, enter the no: of the line you want expanded, or just ENTER if you want the entire program expanded. You must use #60 after calling this routine.": 1 ;"This routine enables you to determine the 1 ;"This routine deletes hidden colour items, thus saving space Also see #64,#82 & #100": 1 ;"This routine decodes tapeheader information & prints out a full analysis (name, address, type, length & auto-start details.": 1 ;"This routine converts hex no:s to their decimal equivalents. It clears the screen & prompts 'H:' - now ENTER the hex no:. Only the last 4 hex digits will be converted. The routine auto- repeats. Enter 'Q' to quit to BASIC. When called from #92(Hex Loader) only the last 2 digits are considered.": 1 ;"This routine converts decimal no:s from 0 to 65535 to hex. It clears the screen & prompts 'D:' - now ENTER the dec no:. Error message 6 results if the no: was out of range. The rou- tine autorepeats. Enter 'Q' to quit to BASIC.": 1 ;"This routine contracts programs into the minimum no: of lines, by combining lines wherever it is logically possible. Speed is also increased. See also #41, #64, #90 & #100": 1 ;"This routine allows hex input into RAM.POKE the less/more sig (see #61) bytes of the first address to be changed into the system-var DEFADD (23563/4). POKE 65360/61 with the start address of routine #63(Hex-Dec) which must also be in memory.": 1 ;"This routine allows a block of lines to be relocated within a BASIC program.In order to shift lines 4200 till 6745 so they appear after2200 in the listing respond 4200,6745 & 2200 to the auto-prompts.The new lines will all have number 0.Now call #60 to renumber & #57 to delete the old lines. Fully errorproofed.": 1 ;"The free space F from the last Variable to RAMTOP is printed. By the way, you can use POKE 23637,203:POKE 23638,92:SAVE 'Name'CODE 23552,RAMTOP-23550-F to save your program disguised as code - it will autostart at the first line."; 1 ;"The Toolkit contains 1 ;"THIS IS AN EXAMPLE OF THE NEW CHARACTER SET.POKE 23606/7 WITH THE LESS/MORE SIGNIFICANT BYTES OF THE START ADDRESS LESS 256 - CURRENTLY 0 & 223. TO RETURN TO THE NORMAL SET,POKE 23607,60.": 1 ;"SCROLL-OFF POKE ";A+16 1 ;"SCROLL-OFF POKE "; 1 ;"SCROLL-OFF POKE ";A+13 1 ;"Routines 94 to 97 change the case (upper/lower)of strings or of the entire listing ( except strings),as specified.Note that an effective way of switching case from within programs is to POKE 23658,0 (LO) or 8(HI).": 1 ;"Routine in ROM": 1 ;"PRINT AT co-ordinates of the"; 1 ;"POKE 64884, Overall Paper Col" 1 ;"POKE 64859, Overall Ink Colour" 1 ;"POKE 64829, Character Code POKE 64831, Box height POKE 64834, Box Width POKE 64832 & POKE 64835 with the PRINT AT co-ordinates for the top-left hand corner of the box." 1 ;"POKE 64682, Duration POKE 64693, Frequency 1 POKE 64702, Frequency 2" 1 ;"POKE 64648, Frequency POKE 64649, Span POKE 64651, Duration POKE 64670, 28(UP) or 29(DOWN)" 1 ;"POKE 63011, Pitch Decrement POKE 63012, Number of notes POKE 63014 & 63015, Pitch (less/more sig) POKE 63017 & 63018, Duration in ms (less/more sig)" 1 ;"POKE 63001 & 63002 with the Pitch value (less/more sig) POKE 63004 & 63005 with the Duration in ms (less/more sig)" 1 ;"POKE 60006, Duration (1-127) POKE 60020, Colours (0-7) POKE 60029, Line Space (1-255) 1 ;"POKE ";A+7 1 ;"POKE ";A+6 1 ;"POKE ";A+4 1 ;"POKE ";A+1 1 ;"No GOSUBs or GOTOs are changed- use #60 if you need that done. If L is the first Line to be renumbered, & I the Interval POKE 64711, I - 256*INT(I/256) POKE 64712, INT(I/256) POKE 64714, L - 256*INT(L/256) POKE 64715, INT(L/256)": 1 ;"Move the cursor to the required line & then call this routine. You will be in EDIT mode, but with the cursor at the END of the line.": 1 ;"Make the following POKEs:- INK (63732) PAPER (63738) FLASH (63744) BRIGHT(63750) INVERSE(63756) OVER (63762) AT (63768,63771)CHR$ (63774)" 1 ;"Less Sig More Sig": 1 ;"In order to scroll a table of data > 22 lines long without stopping, use the command POKE 23692,x where x is the no: of lines to be scrolled. To scroll 'forever' use POKE 23692,255 within the loop that generates the lines.": 1 ;"In order to print lists or text using all the 24 lines on the screen, include POKE 23659,0 before each PRINT instruction. At the end, POKE 23659,2. Use PAUSE 0 to prevent the Scroll command corrupting the screen. PRINT #0 & PRINT #1 commands are also usable.": 1 ;"In order to make the first line of your program virtually non- deletable (by making it #0)POKE 23755,0: POKE 23756,0. To do this to other lines, first find their address X using routine 88, then POKE X-4,0: POKE X-3,0 The program will work provided you do not GOTO/GOSUB/RESTORE such lines.": 1 ;"INVERSE SCRL POKE ";A+13 1 ;"INTRODUCTION": 1 ;"Having connected the EAR socket of the cassette-recorder to the Specrum, start PLAYing the tape ( Voice is best. Let Vol=max ) Enter CLEAR 32767:RANDOMISE USR 65290. All memory from 32768 to 65K is used. To replay, call routine 78.": 1 ;"Follow the prompts to expand a REM statement (to accommodate code) anywhere in the program, by up to 9999 bytes": 1 ;"Draw multipointed-stars & rings by first plotting a point near the middle of the screen & then using DRAW X,Y,N where X & Y have magnitudes from 10 to 60 & N lies between 8000 & 9999. You may need to experiment.": 1 ;"Draw any closed figure on the screen, then PLOT a point lying INSIDE it. POKE 59293 with the Attribute value to be filled,& then call this routine 1 ;"Corrupts the listing without affecting program execution: attempting to EDIT/alter lines could be fatal (thus useful for program protection, as are #61/ #80).": 1 ;"Call this routine at the start of your program, say by having as LINE 1, '1 RANDOMISE USR 60899'. Now if an error of the type D:BREAK,H:STOP in INPUT or L:BREAK into program occurs the program will not stop but will jump to the line number whose 2 byte equivalent is POKEd into 60952(lo) & 60953(hi).This line is initially 9495.": 1 ;"Call this routine at the start of your program, say by having as LINE 1, '1 RANDOMISE USR 60826'. Now if an error occurs, (other than types 0:OK,8:END or 9:STOP) the program will not stop but will jump to the line number whose 2-byte equivalent is POKEd into 60878(lo) & 60879 (hi)...initially 9495. For the error code, PEEK 23681.": 1 ;"By combining this routine with No:s 37-40, joint scrolling of attributes can be done. Define a suitable box, use an Attr Val of 63 & call the Attr Scroll routine(s) once for every 8 calls of this routine." 1 ;"By POKEing 23606 & 23607 with different numbers, a corrupted character set is obtained. To normalise, POKE 23606,0 : POKE 23607,60. Protect your program with this, temporarily normal- ising before each PRINTing.": 1 ;"A Laser Zap routine can also be called,using 1 ;"1)Make line#1 a REM statement: then POKE 23755,100. You can RUN the program but not LIST it until you POKE 23755,0. 2)POKE 23636,150. To return to normal, POKE 23636,92. 3)Use CONFUSE (#98) ,call #65 & #66 to disable BREAKs, use CHR$ SCRAMBLE (#59) to scramble the listing & #68 to create non- deletable lines with 1 ;"----> "; 1 ;", X - 256*INT(X/256)"'" POKE ";A+2 1 ;", New Attribute Val"; 1 ;", INT(X/256)": 1 ;", Box width"; 1 ;", Box height" 1 ;" & POKE ";A+3 1 7,13;: LET Z= 1 7,13, you must enter PRINT 1 60039 Now Z is the required code.": 1 57344----(8118)----65461 1 23670 & 23671 now hold the less significant & more signi- ficant byte values respectively": 1 1983 SUPERSOFT SYSTEMS 1 ,"VARIABLES SEARCH/LIST",1 1 ,"UNI-NOTE SOUND-GEN",5 1 ,"UNI-BEEP SIMULATOR",15 1 ,"UNCONFUSE LISTING",1 1 ,"U-CASE STRINGS",1 1 ,"U-CASE PROGRAM",1 1 ,"TAPE HEADER READER",1 1 ,"SUPER-RENUMBER",1 1 ,"STAR/TORUS DRAW",1 1 ,"SHUTTER-SCROLL RIGHT",10 1 ,"SHUTTER-SCROLL LEFT",10 1 ,"SCREEN-PRINT",1 1 ,"SCREEN STORE",1 1 ,"SCREEN SEARCH",1 1 ,"SCREEN OVERPRINT",1 1 ,"SCREEN INVERT",1 1 ,"SCREEN GRID",1 1 ,"SCREEN FILL",1 1 ,"SCREEN EXCHANGE",1 1 ,"SCIFI CHARACTER SET",1 1 ,"RIPPLE-SCROLL RIGHT",255 1 ,"RIPPLE-SCROLL LEFT",255 1 ,"REPLAY SOUND",0 1 ,"REMKILL CONDENSER",1 1 ,"RECORD SOUND",0 1 ,"RANDOM NUMBER GENERATOR",20 1 ,"PROTECT PROGRAM",1 1 ,"PAPER CHANGE",1 1 ,"PAINT-FILL",1 1 ,"ON ERROR GOTO",1 1 ,"ON BREAK GOTO",1 1 ,"OBLIQUE SCROLL-OFF",1625 1 ,"NON-DELETABLE LINES",1 1 ,"MULTI-BEEP SIMULATOR",8 1 ,"MONOCHROME PROGRAM",1 1 ,"MEMORY AVAILABLE",1 1 ,"LORES TOP 2/3 SCR-RGHT",255 1 ,"LORES TOP 2/3 SCR-LEFT",255 1 ,"LORES TOP 1/3 SCR-RGHT",255 1 ,"LORES TOP 1/3 SCR-LEFT",255 1 ,"LORES SCROLL-UP",24 1 ,"LORES SCROLL-LEFT",33 1 ,"LORES SCROLL RIGHT",33 1 ,"LORES R-DIAG SCROLL",22 1 ,"LORES MID 1/3 SCR-RGHT",255 1 ,"LORES MID 1/3 SCR-LEFT",255 1 ,"LORES LOW 2/3 SCR-RGHT",255 1 ,"LORES LOW 2/3 SCR-LEFT",255 1 ,"LORES LOW 1/3 SCR-RGHT",255 1 ,"LORES LOW 1/3 SCR-LEFT",255 1 ,"LORES L-DIAG SCROLL",22 1 ,"LINE RENUMBER",1 1 ,"LINE ADDRESS",1 1 ,"L-CASE STRINGS",1 1 ,"L-CASE PROGRAM",1 1 ,"INK CHANGE",1 1 ,"HIRES SW-DIAG SCROLL",190 1 ,"HIRES SE-DIAG SCROLL",190 1 ,"HIRES SCROLL-UP",175 1 ,"HIRES SCROLL-RIGHT",255 1 ,"HIRES SCROLL-LEFT",255 1 ,"HIRES SCROLL-DOWN",200 1 ,"HIRES NW-DIAG SCROLL",176 1 ,"HIRES NE-DIAG SCROLL",176 1 ,"HEX->DEC CONVERTER",1 1 ,"HEX LOADER",1 1 ,"FREE-SCROLLER",1 1 ,"FLASH SWITCH",1 1 ,"FLASH ON",1 1 ,"FLASH OFF",1 1 ,"EXPAND REM",1 1 ,"EXPAND PROGRAM",1 1 ,"DUAL-NOTE SOUND-GEN",10 1 ,"DEC->HEX CONVERTER",1 1 ,"CONTRACT PROGRAM",1 1 ,"CONFUSE LISTING",1 1 ,"COMPRESS NUMBERS",1 1 ,"CLEAR ALL ",1 1 ,"CHR$ SCRAMBLE",1 1 ,"BRIGHT SWITCH",1 1 ,"BRIGHT ON",1 1 ,"BRIGHT OFF",1 1 ,"BORDER EFFECTS",10 1 ,"BLOCK MEMORY INSERT",1 1 ,"BLOCK LINE DELETE",1 1 ,"BLOCK LINE COPY",1 1 ,"AWAIT KEYPRESS",1 1 ,"ATTRIBUTE SCR-UP",40 1 ,"ATTRIBUTE SCR-RIGHT",200 1 ,"ATTRIBUTE SCR-LEFT",40 1 ,"ATTRIBUTE SCR-DOWN",40 1 ,"ATTRIBUTE FILL",1 1 ,"APPEND STATEMENT",1 1 ,"ANALYSE PROGRAM",1 1 ,"ANALYSE MEMORY",1 1 ,"ALL-RIGHT SCROLL",32 1 ,"ALL-LEFT SCROLL",32 1 ,"24-LINE PRINTING",1 1 ,"2 BYTE CONVERTER",1 1 , use a fresh cassette - the routine is saved under the name "; 1 , use GOTO 9001(not RUN)to restart the program." 1 +A;", 26"; 1 *SUPERCODE 1 '(exit).You willthen have the option of SAVEing the routine on tape,QUITting to BASIC or restarting." 1 '" (1)At 10% Speed, using PAUSE"'" (2)At Full Speed" 1 '" To access the next routine in the Index, press ' 1 '" To access a routine whose no: you know, press ' 1 '" If you would like to have the details of this routine again, press ' 1 '" If you wish to return to the Index, press ' 1 ' (repeat)" 1 ' (number)": 1 ' (index)" 1 ' (continue)" 1 "programs.This BASIC program letsyou list,test,customise,relocateSAVE & VERIFY routines easily - but the routines will work just as well if the program is absent" 1 "This routine has now been saved.Replay it NOW to VERIFY. If the recording is bad, you will be automatically returned to the SAVE option via the Error-trap routine." 1 "The save MUST then be verified." 1 "The code is from 57344 to 65461:it overwrites the first 12 UDGs.RAMTOP has been cleared to 57340" 1 "The Index follows- input the no:of a routine for its description(incl all addresses & POKEs)& anoptional example.Get to know theMenu options ";: 1 "That was the Laser Zap. Now for the Uni-Beep.": 1 "POKEs necessary for tailormakingthe program to your specific needs ) press ' 1 "4)Imbed hidden colour CHR$ to set INK=PAPER within non-delet- able lines:the listing vanishes5)Autostart by using SAVE Name$ LINE X. Let line X be 'LET ERR= 256*PEEK 23614 +PEEK 23613:POKE ERR,0:POKE ERR+1,0'. Any BREAK/ error will now cause a crash.": 1 "#";N;": "; 1 " Press any other key to restart." 1 " The routines run hundreds of times faster than BASIC,& can becustomised easily. Do enjoy yoursuperb Z80 MachineCode Library!" 1 " Keep a written record of the name, address & length of this routine, as well as of all the relevant POKEs. For details on relocation, refer to the manual." 1 " If you have noted important details ( address, length, any" 1 swops the current screen & the STOREd one A screen has 6912 bytes (24*32* 8, + 24*32 Attributes) & should be stored above RAMTOP (CLEARed downwards to make room).To have a screen from X-6911 to X use POKE ";A+1 1 saves a screen, 1 recalls it. 1 messages" 1 machinecode routines which you can call(using RANDOMIZE/PRINT USR) bothdirectly & from within your own" 1 V.RUMSEY 1 ROUTINE # 65 HAS PREVENTED YOU FROM BREAKING INTO THIS PROGRAM 1 PRESS ANY KEY TO TURN THE PAGE 1 POKE 63951,Duration. To save it use SAVE 'ZAP'CODE 63950,26." 1 POKE 23607, 223 1 OVERPRINT 1 Loading Time: 1 F.VACHHA 1 - PRESS ANY KEY TO GO ON 1 1